{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2019162542\\t/front-api/bill/create\\t8\\t1057.31...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>162644\\t/front-api/bill/create\\t5\\t749.12\\t103...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>162742\\t/front-api/bill/create\\t5\\t845.84\\t136...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>162808\\t/front-api/bill/create\\t9\\t1305.52\\t90...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>162943\\t/front-api/bill/create\\t3\\t568.89\\t138...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                   0\n",
       "0  2019162542\\t/front-api/bill/create\\t8\\t1057.31...\n",
       "1  162644\\t/front-api/bill/create\\t5\\t749.12\\t103...\n",
       "2  162742\\t/front-api/bill/create\\t5\\t845.84\\t136...\n",
       "3  162808\\t/front-api/bill/create\\t9\\t1305.52\\t90...\n",
       "4  162943\\t/front-api/bill/create\\t3\\t568.89\\t138..."
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('./log.txt',header = None)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            0                       1  2        3       4       5      6   7  \\\n",
       "0  2019162542  /front-api/bill/create  8  1057.31   88.75  177.72  132.0  60   \n",
       "1      162644  /front-api/bill/create  5   749.12  103.79  240.38  149.0  60   \n",
       "2      162742  /front-api/bill/create  5   845.84  136.31  225.73  169.0  60   \n",
       "3      162808  /front-api/bill/create  9  1305.52   90.12  196.61  145.0  60   \n",
       "4      162943  /front-api/bill/create  3   568.89  138.45  232.02  189.0  60   \n",
       "\n",
       "                     8  \n",
       "0  2018-11-01 00:00:07  \n",
       "1  2018-11-01 00:01:07  \n",
       "2  2018-11-01 00:02:07  \n",
       "3  2018-11-01 00:03:07  \n",
       "4  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 通过制表符进行分割\n",
    "df = pd.read_csv('./log.txt',header = None, sep = '\\t')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 修改列名\n",
    "df.columns = ['id','api','count','res_time_sum','res_time_min','res_time_max','res_time_avg','interval','created_at']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id                     api  count  res_time_sum  res_time_min  \\\n",
       "0  2019162542  /front-api/bill/create      8       1057.31         88.75   \n",
       "1      162644  /front-api/bill/create      5        749.12        103.79   \n",
       "2      162742  /front-api/bill/create      5        845.84        136.31   \n",
       "3      162808  /front-api/bill/create      9       1305.52         90.12   \n",
       "4      162943  /front-api/bill/create      3        568.89        138.45   \n",
       "\n",
       "   res_time_max  res_time_avg  interval           created_at  \n",
       "0        177.72         132.0        60  2018-11-01 00:00:07  \n",
       "1        240.38         149.0        60  2018-11-01 00:01:07  \n",
       "2        225.73         169.0        60  2018-11-01 00:02:07  \n",
       "3        196.61         145.0        60  2018-11-01 00:03:07  \n",
       "4        232.02         189.0        60  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>175532</td>\n",
       "      <td>13130325</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>12</td>\n",
       "      <td>3131.94</td>\n",
       "      <td>109.50</td>\n",
       "      <td>798.20</td>\n",
       "      <td>260.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-26 16:47:17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>85664</td>\n",
       "      <td>6548997</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1976.43</td>\n",
       "      <td>90.91</td>\n",
       "      <td>810.98</td>\n",
       "      <td>219.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-02-08 22:50:02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>167970</td>\n",
       "      <td>12545117</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>12</td>\n",
       "      <td>2636.29</td>\n",
       "      <td>120.50</td>\n",
       "      <td>433.87</td>\n",
       "      <td>219.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-17 23:01:08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>87229</td>\n",
       "      <td>6651040</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>12</td>\n",
       "      <td>2022.66</td>\n",
       "      <td>110.34</td>\n",
       "      <td>244.46</td>\n",
       "      <td>168.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-02-10 20:52:05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>596</td>\n",
       "      <td>219777</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>11</td>\n",
       "      <td>1854.88</td>\n",
       "      <td>96.43</td>\n",
       "      <td>238.87</td>\n",
       "      <td>168.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 19:25:09</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              id                     api  count  res_time_sum  res_time_min  \\\n",
       "175532  13130325  /front-api/bill/create     12       3131.94        109.50   \n",
       "85664    6548997  /front-api/bill/create      9       1976.43         90.91   \n",
       "167970  12545117  /front-api/bill/create     12       2636.29        120.50   \n",
       "87229    6651040  /front-api/bill/create     12       2022.66        110.34   \n",
       "596       219777  /front-api/bill/create     11       1854.88         96.43   \n",
       "\n",
       "        res_time_max  res_time_avg  interval           created_at  \n",
       "175532        798.20         260.0        60  2019-05-26 16:47:17  \n",
       "85664         810.98         219.0        60  2019-02-08 22:50:02  \n",
       "167970        433.87         219.0        60  2019-05-17 23:01:08  \n",
       "87229         244.46         168.0        60  2019-02-10 20:52:05  \n",
       "596           238.87         168.0        60  2018-11-01 19:25:09  "
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sample(5)   # 随机采样，多次执行，返回的数据不一样，看大概的数据情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(179496, 9)"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape    # 查看数据的大小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id                int64\n",
       "api              object\n",
       "count             int64\n",
       "res_time_sum    float64\n",
       "res_time_min    float64\n",
       "res_time_max    float64\n",
       "res_time_avg    float64\n",
       "interval          int64\n",
       "created_at       object\n",
       "dtype: object"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dtypes   # 查看数据类型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 9 columns):\n",
      "id              179496 non-null int64\n",
      "api             179496 non-null object\n",
      "count           179496 non-null int64\n",
      "res_time_sum    179496 non-null float64\n",
      "res_time_min    179496 non-null float64\n",
      "res_time_max    179496 non-null float64\n",
      "res_time_avg    179496 non-null float64\n",
      "interval        179496 non-null int64\n",
      "created_at      179496 non-null object\n",
      "dtypes: float64(4), int64(3), object(2)\n",
      "memory usage: 12.3+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()   # 查看内存占用空间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                     179496\n",
       "unique                         1\n",
       "top       /front-api/bill/create\n",
       "freq                      179496\n",
       "Name: api, dtype: object"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['api'].describe()   # 查看某一列数据的详细情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id  count  res_time_sum  res_time_min  res_time_max  res_time_avg  \\\n",
       "0  2019162542      8       1057.31         88.75        177.72         132.0   \n",
       "1      162644      5        749.12        103.79        240.38         149.0   \n",
       "\n",
       "   interval           created_at  \n",
       "0        60  2018-11-01 00:00:07  \n",
       "1        60  2018-11-01 00:01:07  "
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 通过分析，得到api这一项没有问题,删除正常的项目，优化内存\n",
    "df = df.drop('api',axis = 1)\n",
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 8 columns):\n",
      "id              179496 non-null int64\n",
      "count           179496 non-null int64\n",
      "res_time_sum    179496 non-null float64\n",
      "res_time_min    179496 non-null float64\n",
      "res_time_max    179496 non-null float64\n",
      "res_time_avg    179496 non-null float64\n",
      "interval        179496 non-null int64\n",
      "created_at      179496 non-null object\n",
      "dtypes: float64(4), int64(3), object(1)\n",
      "memory usage: 11.0+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                  179496\n",
       "unique                 179496\n",
       "top       2019-01-26 18:20:42\n",
       "freq                        1\n",
       "Name: created_at, dtype: object"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['created_at'].describe()  # 通过unique这条信息，发现每一行都不重复"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>153089</td>\n",
       "      <td>11406128</td>\n",
       "      <td>6</td>\n",
       "      <td>2105.08</td>\n",
       "      <td>125.74</td>\n",
       "      <td>992.46</td>\n",
       "      <td>350.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:00:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>153090</td>\n",
       "      <td>11406236</td>\n",
       "      <td>7</td>\n",
       "      <td>2579.11</td>\n",
       "      <td>76.55</td>\n",
       "      <td>987.47</td>\n",
       "      <td>368.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:01:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>153091</td>\n",
       "      <td>11406347</td>\n",
       "      <td>7</td>\n",
       "      <td>1277.79</td>\n",
       "      <td>109.65</td>\n",
       "      <td>236.73</td>\n",
       "      <td>182.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:02:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>153092</td>\n",
       "      <td>11406446</td>\n",
       "      <td>7</td>\n",
       "      <td>2137.20</td>\n",
       "      <td>131.55</td>\n",
       "      <td>920.52</td>\n",
       "      <td>305.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:03:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>153093</td>\n",
       "      <td>11406488</td>\n",
       "      <td>13</td>\n",
       "      <td>2948.70</td>\n",
       "      <td>86.42</td>\n",
       "      <td>491.31</td>\n",
       "      <td>226.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:04:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>153968</td>\n",
       "      <td>11475363</td>\n",
       "      <td>6</td>\n",
       "      <td>1083.97</td>\n",
       "      <td>70.85</td>\n",
       "      <td>262.22</td>\n",
       "      <td>180.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:55:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>153969</td>\n",
       "      <td>11475483</td>\n",
       "      <td>4</td>\n",
       "      <td>840.00</td>\n",
       "      <td>117.31</td>\n",
       "      <td>382.63</td>\n",
       "      <td>210.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:56:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>153970</td>\n",
       "      <td>11475550</td>\n",
       "      <td>2</td>\n",
       "      <td>295.51</td>\n",
       "      <td>101.71</td>\n",
       "      <td>193.80</td>\n",
       "      <td>147.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:57:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>153971</td>\n",
       "      <td>11475597</td>\n",
       "      <td>2</td>\n",
       "      <td>431.99</td>\n",
       "      <td>84.43</td>\n",
       "      <td>347.56</td>\n",
       "      <td>215.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:58:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>153972</td>\n",
       "      <td>11475664</td>\n",
       "      <td>3</td>\n",
       "      <td>428.84</td>\n",
       "      <td>103.58</td>\n",
       "      <td>206.57</td>\n",
       "      <td>142.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:59:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>884 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              id  count  res_time_sum  res_time_min  res_time_max  \\\n",
       "153089  11406128      6       2105.08        125.74        992.46   \n",
       "153090  11406236      7       2579.11         76.55        987.47   \n",
       "153091  11406347      7       1277.79        109.65        236.73   \n",
       "153092  11406446      7       2137.20        131.55        920.52   \n",
       "153093  11406488     13       2948.70         86.42        491.31   \n",
       "...          ...    ...           ...           ...           ...   \n",
       "153968  11475363      6       1083.97         70.85        262.22   \n",
       "153969  11475483      4        840.00        117.31        382.63   \n",
       "153970  11475550      2        295.51        101.71        193.80   \n",
       "153971  11475597      2        431.99         84.43        347.56   \n",
       "153972  11475664      3        428.84        103.58        206.57   \n",
       "\n",
       "        res_time_avg  interval           created_at  \n",
       "153089         350.0        60  2019-05-01 00:00:48  \n",
       "153090         368.0        60  2019-05-01 00:01:48  \n",
       "153091         182.0        60  2019-05-01 00:02:48  \n",
       "153092         305.0        60  2019-05-01 00:03:48  \n",
       "153093         226.0        60  2019-05-01 00:04:48  \n",
       "...              ...       ...                  ...  \n",
       "153968         180.0        60  2019-05-01 23:55:49  \n",
       "153969         210.0        60  2019-05-01 23:56:49  \n",
       "153970         147.0        60  2019-05-01 23:57:49  \n",
       "153971         215.0        60  2019-05-01 23:58:49  \n",
       "153972         142.0        60  2019-05-01 23:59:49  \n",
       "\n",
       "[884 rows x 8 columns]"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[(df.created_at >= '2019-05-01') & (df.created_at < '2019-05-02')]   # 通过某一个时间点取出数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RangeIndex(start=0, stop=179496, step=1)"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将索引替换为created_at(时间索引)\n",
    "df.index # 查看当前索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.set_index('created_at')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "ename": "KeyError",
     "evalue": "'2019-05-01'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "\u001b[1;32mD:\\ProgramData\\Anaconda3\\lib\\site-packages\\pandas\\core\\indexes\\base.py\u001b[0m in \u001b[0;36mget_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m   2896\u001b[0m             \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2897\u001b[1;33m                 \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   2898\u001b[0m             \u001b[1;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;31mKeyError\u001b[0m: '2019-05-01'",
      "\nDuring handling of the above exception, another exception occurred:\n",
      "\u001b[1;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-98-995cf5800d39>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mdf\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'2019-05-01'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32mD:\\ProgramData\\Anaconda3\\lib\\site-packages\\pandas\\core\\frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m   2978\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnlevels\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2979\u001b[0m                 \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2980\u001b[1;33m             \u001b[0mindexer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   2981\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2982\u001b[0m                 \u001b[0mindexer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mindexer\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\ProgramData\\Anaconda3\\lib\\site-packages\\pandas\\core\\indexes\\base.py\u001b[0m in \u001b[0;36mget_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m   2897\u001b[0m                 \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2898\u001b[0m             \u001b[1;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2899\u001b[1;33m                 \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_maybe_cast_indexer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   2900\u001b[0m         \u001b[0mindexer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_indexer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mtolerance\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2901\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mindexer\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mindexer\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msize\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;31mKeyError\u001b[0m: '2019-05-01'"
     ]
    }
   ],
   "source": [
    "df['2019-05-01']  #  因为created_at储存的数据是字符串，不是时间类型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Index: 179496 entries, 2018-11-01 00:00:07 to 2019-05-30 23:10:21\n",
      "Data columns (total 7 columns):\n",
      "id              179496 non-null int64\n",
      "count           179496 non-null int64\n",
      "res_time_sum    179496 non-null float64\n",
      "res_time_min    179496 non-null float64\n",
      "res_time_max    179496 non-null float64\n",
      "res_time_avg    179496 non-null float64\n",
      "interval        179496 non-null int64\n",
      "dtypes: float64(4), int64(3)\n",
      "memory usage: 11.0+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['2018-11-01 00:00:07', '2018-11-01 00:01:07', '2018-11-01 00:02:07',\n",
       "       '2018-11-01 00:03:07', '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "       '2018-11-01 00:06:07', '2018-11-01 00:07:07', '2018-11-01 00:08:07',\n",
       "       '2018-11-01 00:09:07',\n",
       "       ...\n",
       "       '2019-05-30 23:01:21', '2019-05-30 23:02:21', '2019-05-30 23:03:21',\n",
       "       '2019-05-30 23:04:21', '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "       '2019-05-30 23:07:21', '2019-05-30 23:08:21', '2019-05-30 23:09:21',\n",
       "       '2019-05-30 23:10:21'],\n",
       "      dtype='object', name='created_at', length=179496)"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-30 23:06:21</td>\n",
       "      <td>13438800</td>\n",
       "      <td>11</td>\n",
       "      <td>2783.48</td>\n",
       "      <td>99.24</td>\n",
       "      <td>489.90</td>\n",
       "      <td>253.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-30 23:07:21</td>\n",
       "      <td>13438866</td>\n",
       "      <td>10</td>\n",
       "      <td>1951.10</td>\n",
       "      <td>85.37</td>\n",
       "      <td>529.51</td>\n",
       "      <td>195.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-30 23:08:21</td>\n",
       "      <td>13438917</td>\n",
       "      <td>3</td>\n",
       "      <td>494.17</td>\n",
       "      <td>103.95</td>\n",
       "      <td>211.47</td>\n",
       "      <td>164.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-30 23:09:21</td>\n",
       "      <td>13438981</td>\n",
       "      <td>9</td>\n",
       "      <td>1798.28</td>\n",
       "      <td>101.11</td>\n",
       "      <td>433.30</td>\n",
       "      <td>199.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-30 23:10:21</td>\n",
       "      <td>13439086</td>\n",
       "      <td>6</td>\n",
       "      <td>1017.97</td>\n",
       "      <td>74.45</td>\n",
       "      <td>298.97</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>179496 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                             id  count  res_time_sum  res_time_min  \\\n",
       "created_at                                                           \n",
       "2018-11-01 00:00:07  2019162542      8       1057.31         88.75   \n",
       "2018-11-01 00:01:07      162644      5        749.12        103.79   \n",
       "2018-11-01 00:02:07      162742      5        845.84        136.31   \n",
       "2018-11-01 00:03:07      162808      9       1305.52         90.12   \n",
       "2018-11-01 00:04:07      162943      3        568.89        138.45   \n",
       "...                         ...    ...           ...           ...   \n",
       "2019-05-30 23:06:21    13438800     11       2783.48         99.24   \n",
       "2019-05-30 23:07:21    13438866     10       1951.10         85.37   \n",
       "2019-05-30 23:08:21    13438917      3        494.17        103.95   \n",
       "2019-05-30 23:09:21    13438981      9       1798.28        101.11   \n",
       "2019-05-30 23:10:21    13439086      6       1017.97         74.45   \n",
       "\n",
       "                     res_time_max  res_time_avg  interval  \n",
       "created_at                                                 \n",
       "2018-11-01 00:00:07        177.72         132.0        60  \n",
       "2018-11-01 00:01:07        240.38         149.0        60  \n",
       "2018-11-01 00:02:07        225.73         169.0        60  \n",
       "2018-11-01 00:03:07        196.61         145.0        60  \n",
       "2018-11-01 00:04:07        232.02         189.0        60  \n",
       "...                           ...           ...       ...  \n",
       "2019-05-30 23:06:21        489.90         253.0        60  \n",
       "2019-05-30 23:07:21        529.51         195.0        60  \n",
       "2019-05-30 23:08:21        211.47         164.0        60  \n",
       "2019-05-30 23:09:21        433.30         199.0        60  \n",
       "2019-05-30 23:10:21        298.97         169.0        60  \n",
       "\n",
       "[179496 rows x 7 columns]"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.index = pd.to_datetime(df.index)   # 将字符串转换为时间类型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2018-11-01 00:00:07', '2018-11-01 00:01:07',\n",
       "               '2018-11-01 00:02:07', '2018-11-01 00:03:07',\n",
       "               '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "               '2018-11-01 00:06:07', '2018-11-01 00:07:07',\n",
       "               '2018-11-01 00:08:07', '2018-11-01 00:09:07',\n",
       "               ...\n",
       "               '2019-05-30 23:01:21', '2019-05-30 23:02:21',\n",
       "               '2019-05-30 23:03:21', '2019-05-30 23:04:21',\n",
       "               '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "               '2019-05-30 23:07:21', '2019-05-30 23:08:21',\n",
       "               '2019-05-30 23:09:21', '2019-05-30 23:10:21'],\n",
       "              dtype='datetime64[ns]', name='created_at', length=179496, freq=None)"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2019-05-01 00:00:48</td>\n",
       "      <td>11406128</td>\n",
       "      <td>6</td>\n",
       "      <td>2105.08</td>\n",
       "      <td>125.74</td>\n",
       "      <td>992.46</td>\n",
       "      <td>350.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 00:01:48</td>\n",
       "      <td>11406236</td>\n",
       "      <td>7</td>\n",
       "      <td>2579.11</td>\n",
       "      <td>76.55</td>\n",
       "      <td>987.47</td>\n",
       "      <td>368.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 00:02:48</td>\n",
       "      <td>11406347</td>\n",
       "      <td>7</td>\n",
       "      <td>1277.79</td>\n",
       "      <td>109.65</td>\n",
       "      <td>236.73</td>\n",
       "      <td>182.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 00:03:48</td>\n",
       "      <td>11406446</td>\n",
       "      <td>7</td>\n",
       "      <td>2137.20</td>\n",
       "      <td>131.55</td>\n",
       "      <td>920.52</td>\n",
       "      <td>305.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 00:04:48</td>\n",
       "      <td>11406488</td>\n",
       "      <td>13</td>\n",
       "      <td>2948.70</td>\n",
       "      <td>86.42</td>\n",
       "      <td>491.31</td>\n",
       "      <td>226.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 23:55:49</td>\n",
       "      <td>11475363</td>\n",
       "      <td>6</td>\n",
       "      <td>1083.97</td>\n",
       "      <td>70.85</td>\n",
       "      <td>262.22</td>\n",
       "      <td>180.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 23:56:49</td>\n",
       "      <td>11475483</td>\n",
       "      <td>4</td>\n",
       "      <td>840.00</td>\n",
       "      <td>117.31</td>\n",
       "      <td>382.63</td>\n",
       "      <td>210.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 23:57:49</td>\n",
       "      <td>11475550</td>\n",
       "      <td>2</td>\n",
       "      <td>295.51</td>\n",
       "      <td>101.71</td>\n",
       "      <td>193.80</td>\n",
       "      <td>147.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 23:58:49</td>\n",
       "      <td>11475597</td>\n",
       "      <td>2</td>\n",
       "      <td>431.99</td>\n",
       "      <td>84.43</td>\n",
       "      <td>347.56</td>\n",
       "      <td>215.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 23:59:49</td>\n",
       "      <td>11475664</td>\n",
       "      <td>3</td>\n",
       "      <td>428.84</td>\n",
       "      <td>103.58</td>\n",
       "      <td>206.57</td>\n",
       "      <td>142.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>884 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           id  count  res_time_sum  res_time_min  \\\n",
       "created_at                                                         \n",
       "2019-05-01 00:00:48  11406128      6       2105.08        125.74   \n",
       "2019-05-01 00:01:48  11406236      7       2579.11         76.55   \n",
       "2019-05-01 00:02:48  11406347      7       1277.79        109.65   \n",
       "2019-05-01 00:03:48  11406446      7       2137.20        131.55   \n",
       "2019-05-01 00:04:48  11406488     13       2948.70         86.42   \n",
       "...                       ...    ...           ...           ...   \n",
       "2019-05-01 23:55:49  11475363      6       1083.97         70.85   \n",
       "2019-05-01 23:56:49  11475483      4        840.00        117.31   \n",
       "2019-05-01 23:57:49  11475550      2        295.51        101.71   \n",
       "2019-05-01 23:58:49  11475597      2        431.99         84.43   \n",
       "2019-05-01 23:59:49  11475664      3        428.84        103.58   \n",
       "\n",
       "                     res_time_max  res_time_avg  interval  \n",
       "created_at                                                 \n",
       "2019-05-01 00:00:48        992.46         350.0        60  \n",
       "2019-05-01 00:01:48        987.47         368.0        60  \n",
       "2019-05-01 00:02:48        236.73         182.0        60  \n",
       "2019-05-01 00:03:48        920.52         305.0        60  \n",
       "2019-05-01 00:04:48        491.31         226.0        60  \n",
       "...                           ...           ...       ...  \n",
       "2019-05-01 23:55:49        262.22         180.0        60  \n",
       "2019-05-01 23:56:49        382.63         210.0        60  \n",
       "2019-05-01 23:57:49        193.80         147.0        60  \n",
       "2019-05-01 23:58:49        347.56         215.0        60  \n",
       "2019-05-01 23:59:49        206.57         142.0        60  \n",
       "\n",
       "[884 rows x 7 columns]"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['2019-5-1']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    179496.0\n",
       "mean         60.0\n",
       "std           0.0\n",
       "min          60.0\n",
       "25%          60.0\n",
       "50%          60.0\n",
       "75%          60.0\n",
       "max          60.0\n",
       "Name: interval, dtype: float64"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.interval.describe()   # 判断interval是否有问题"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([60], dtype=int64)"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.interval.unique()  # 取出唯一值，如果只有一个，则所有值都一样"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "2018-11-01 00:02:07      5        845.84        136.31        225.73   \n",
       "2018-11-01 00:03:07      9       1305.52         90.12        196.61   \n",
       "2018-11-01 00:04:07      3        568.89        138.45        232.02   \n",
       "\n",
       "                     res_time_avg  \n",
       "created_at                         \n",
       "2018-11-01 00:00:07         132.0  \n",
       "2018-11-01 00:01:07         149.0  \n",
       "2018-11-01 00:02:07         169.0  \n",
       "2018-11-01 00:03:07         145.0  \n",
       "2018-11-01 00:04:07         189.0  "
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = df. drop(['interval','id'],axis = 1)\n",
    "df.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 179496 entries, 2018-11-01 00:00:07 to 2019-05-30 23:10:21\n",
      "Data columns (total 5 columns):\n",
      "count           179496 non-null int64\n",
      "res_time_sum    179496 non-null float64\n",
      "res_time_min    179496 non-null float64\n",
      "res_time_max    179496 non-null float64\n",
      "res_time_avg    179496 non-null float64\n",
      "dtypes: float64(4), int64(1)\n",
      "memory usage: 8.2 MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>count</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>mean</td>\n",
       "      <td>7.175909</td>\n",
       "      <td>1393.177832</td>\n",
       "      <td>108.419626</td>\n",
       "      <td>359.880374</td>\n",
       "      <td>187.812208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>std</td>\n",
       "      <td>4.325160</td>\n",
       "      <td>1499.486073</td>\n",
       "      <td>79.640693</td>\n",
       "      <td>638.919827</td>\n",
       "      <td>224.464813</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>min</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>3.210000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>36.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>25%</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>607.707500</td>\n",
       "      <td>83.410000</td>\n",
       "      <td>198.280000</td>\n",
       "      <td>144.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>50%</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>1154.905000</td>\n",
       "      <td>97.120000</td>\n",
       "      <td>256.090000</td>\n",
       "      <td>167.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>75%</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>1834.117500</td>\n",
       "      <td>116.990000</td>\n",
       "      <td>374.410000</td>\n",
       "      <td>202.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>max</td>\n",
       "      <td>31.000000</td>\n",
       "      <td>142650.550000</td>\n",
       "      <td>18896.640000</td>\n",
       "      <td>142468.270000</td>\n",
       "      <td>71325.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               count   res_time_sum   res_time_min   res_time_max  \\\n",
       "count  179496.000000  179496.000000  179496.000000  179496.000000   \n",
       "mean        7.175909    1393.177832     108.419626     359.880374   \n",
       "std         4.325160    1499.486073      79.640693     638.919827   \n",
       "min         1.000000      36.550000       3.210000      36.550000   \n",
       "25%         4.000000     607.707500      83.410000     198.280000   \n",
       "50%         7.000000    1154.905000      97.120000     256.090000   \n",
       "75%        10.000000    1834.117500     116.990000     374.410000   \n",
       "max        31.000000  142650.550000   18896.640000  142468.270000   \n",
       "\n",
       "        res_time_avg  \n",
       "count  179496.000000  \n",
       "mean      187.812208  \n",
       "std       224.464813  \n",
       "min        36.000000  \n",
       "25%       144.000000  \n",
       "50%       167.000000  \n",
       "75%       202.000000  \n",
       "max     71325.000000  "
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()   # 所有数据的统计"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['count'].hist()   # 初步分析count直方图,count是每分钟的调用次数\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 表示接口调用分布情况，大部分都在十次以内,反映出每分钟调用的次数分布情况\n",
    "df['count'].hist(bins = 30)  # 增加柱子的数目，让数据显示更明确一点\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 切出一天的数据，绘制一天时段的接口调用情况\n",
    "df['2019-5-1']['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 凌晨时间是无人访问，下午2点至3点第一个访问高峰，晚上8点至9点第二个访问高峰\n",
    "# 用count重行采样，用一个小时进行采样，图就没那么多数据点，图会比较平滑\n",
    "df2 = df['2019-5-1']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2019-05-01 00:00:00</td>\n",
       "      <td>4.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 01:00:00</td>\n",
       "      <td>2.272727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 02:00:00</td>\n",
       "      <td>1.833333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 03:00:00</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 04:00:00</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 05:00:00</td>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 06:00:00</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 07:00:00</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 08:00:00</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 09:00:00</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 10:00:00</td>\n",
       "      <td>1.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 11:00:00</td>\n",
       "      <td>1.604651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 12:00:00</td>\n",
       "      <td>3.298246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 13:00:00</td>\n",
       "      <td>6.866667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 14:00:00</td>\n",
       "      <td>10.483333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 15:00:00</td>\n",
       "      <td>12.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 16:00:00</td>\n",
       "      <td>9.916667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 17:00:00</td>\n",
       "      <td>7.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 18:00:00</td>\n",
       "      <td>6.783333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 19:00:00</td>\n",
       "      <td>9.850000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 20:00:00</td>\n",
       "      <td>11.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 21:00:00</td>\n",
       "      <td>10.416667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 22:00:00</td>\n",
       "      <td>8.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 23:00:00</td>\n",
       "      <td>5.083333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         count\n",
       "created_at                    \n",
       "2019-05-01 00:00:00   4.428571\n",
       "2019-05-01 01:00:00   2.272727\n",
       "2019-05-01 02:00:00   1.833333\n",
       "2019-05-01 03:00:00        NaN\n",
       "2019-05-01 04:00:00        NaN\n",
       "2019-05-01 05:00:00   2.000000\n",
       "2019-05-01 06:00:00        NaN\n",
       "2019-05-01 07:00:00        NaN\n",
       "2019-05-01 08:00:00        NaN\n",
       "2019-05-01 09:00:00   1.000000\n",
       "2019-05-01 10:00:00   1.400000\n",
       "2019-05-01 11:00:00   1.604651\n",
       "2019-05-01 12:00:00   3.298246\n",
       "2019-05-01 13:00:00   6.866667\n",
       "2019-05-01 14:00:00  10.483333\n",
       "2019-05-01 15:00:00  12.333333\n",
       "2019-05-01 16:00:00   9.916667\n",
       "2019-05-01 17:00:00   7.666667\n",
       "2019-05-01 18:00:00   6.783333\n",
       "2019-05-01 19:00:00   9.850000\n",
       "2019-05-01 20:00:00  11.000000\n",
       "2019-05-01 21:00:00  10.416667\n",
       "2019-05-01 22:00:00   8.000000\n",
       "2019-05-01 23:00:00   5.083333"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 取平均值会比较合适\n",
    "df2 = df2[['count']].resample('1H').mean() # resample()用于DataFrame对象，所有取值时要再加一对中括号\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df2['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 折线图和直方图，可以看到业务的高峰时段在什么地方，但分不清具体的时间，通过绘制柱状图来查看具体是什么时间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (10,3))  # 设置图像的大小，参数为多少英寸\n",
    "df2['count'].plot(kind = 'bar',color=['r','g','b'])\n",
    "plt.xticks(rotation = 60)  # 让图上的文字显示倾斜，参数为旋转角度\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分析有没有异常时段，访问接口过于频繁，可能就是黑客潮水攻击\n",
    "df['2019-5-1'][['count']].boxplot(showmeans = True,meanline = True)  # 在具体字段名上再加一对括号，使其变成DataFrame对象\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2018-11-01 20:47:09</td>\n",
       "      <td>21</td>\n",
       "      <td>3117.20</td>\n",
       "      <td>84.90</td>\n",
       "      <td>260.82</td>\n",
       "      <td>148.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 21:03:09</td>\n",
       "      <td>21</td>\n",
       "      <td>3706.20</td>\n",
       "      <td>78.12</td>\n",
       "      <td>321.47</td>\n",
       "      <td>176.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 21:13:09</td>\n",
       "      <td>24</td>\n",
       "      <td>4602.03</td>\n",
       "      <td>76.31</td>\n",
       "      <td>391.12</td>\n",
       "      <td>191.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-02 21:34:11</td>\n",
       "      <td>30</td>\n",
       "      <td>4610.15</td>\n",
       "      <td>72.49</td>\n",
       "      <td>463.41</td>\n",
       "      <td>153.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-03 14:20:13</td>\n",
       "      <td>21</td>\n",
       "      <td>3113.93</td>\n",
       "      <td>74.29</td>\n",
       "      <td>266.20</td>\n",
       "      <td>148.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-30 21:33:21</td>\n",
       "      <td>27</td>\n",
       "      <td>6456.64</td>\n",
       "      <td>99.65</td>\n",
       "      <td>978.91</td>\n",
       "      <td>239.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-30 21:43:21</td>\n",
       "      <td>21</td>\n",
       "      <td>6371.84</td>\n",
       "      <td>65.98</td>\n",
       "      <td>1175.37</td>\n",
       "      <td>303.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-30 21:47:21</td>\n",
       "      <td>21</td>\n",
       "      <td>3992.83</td>\n",
       "      <td>87.83</td>\n",
       "      <td>440.88</td>\n",
       "      <td>190.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-30 21:53:21</td>\n",
       "      <td>24</td>\n",
       "      <td>8467.02</td>\n",
       "      <td>120.22</td>\n",
       "      <td>1511.17</td>\n",
       "      <td>352.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-30 22:17:21</td>\n",
       "      <td>21</td>\n",
       "      <td>4926.35</td>\n",
       "      <td>85.01</td>\n",
       "      <td>826.90</td>\n",
       "      <td>234.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>746 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 20:47:09     21       3117.20         84.90        260.82   \n",
       "2018-11-01 21:03:09     21       3706.20         78.12        321.47   \n",
       "2018-11-01 21:13:09     24       4602.03         76.31        391.12   \n",
       "2018-11-02 21:34:11     30       4610.15         72.49        463.41   \n",
       "2018-11-03 14:20:13     21       3113.93         74.29        266.20   \n",
       "...                    ...           ...           ...           ...   \n",
       "2019-05-30 21:33:21     27       6456.64         99.65        978.91   \n",
       "2019-05-30 21:43:21     21       6371.84         65.98       1175.37   \n",
       "2019-05-30 21:47:21     21       3992.83         87.83        440.88   \n",
       "2019-05-30 21:53:21     24       8467.02        120.22       1511.17   \n",
       "2019-05-30 22:17:21     21       4926.35         85.01        826.90   \n",
       "\n",
       "                     res_time_avg  \n",
       "created_at                         \n",
       "2018-11-01 20:47:09         148.0  \n",
       "2018-11-01 21:03:09         176.0  \n",
       "2018-11-01 21:13:09         191.0  \n",
       "2018-11-02 21:34:11         153.0  \n",
       "2018-11-03 14:20:13         148.0  \n",
       "...                           ...  \n",
       "2019-05-30 21:33:21         239.0  \n",
       "2019-05-30 21:43:21         303.0  \n",
       "2019-05-30 21:47:21         190.0  \n",
       "2019-05-30 21:53:21         352.0  \n",
       "2019-05-30 22:17:21         234.0  \n",
       "\n",
       "[746 rows x 5 columns]"
      ]
     },
     "execution_count": 128,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df['count'] > 20]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 某一天的响应时间，平均响应时间\n",
    "df['2019-5-1']['res_time_avg'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['2019-5-1'][['res_time_avg']].boxplot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:2: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
      "  \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2019-05-01 00:34:48</td>\n",
       "      <td>1</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 14:00:49</td>\n",
       "      <td>17</td>\n",
       "      <td>19770.18</td>\n",
       "      <td>207.54</td>\n",
       "      <td>2974.52</td>\n",
       "      <td>1162.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 18:36:49</td>\n",
       "      <td>8</td>\n",
       "      <td>8799.92</td>\n",
       "      <td>96.59</td>\n",
       "      <td>3233.26</td>\n",
       "      <td>1099.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 19:09:49</td>\n",
       "      <td>6</td>\n",
       "      <td>7399.94</td>\n",
       "      <td>307.39</td>\n",
       "      <td>3153.02</td>\n",
       "      <td>1233.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 19:10:49</td>\n",
       "      <td>13</td>\n",
       "      <td>23595.60</td>\n",
       "      <td>206.20</td>\n",
       "      <td>4664.84</td>\n",
       "      <td>1815.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-05-01 20:38:49</td>\n",
       "      <td>15</td>\n",
       "      <td>16169.25</td>\n",
       "      <td>142.47</td>\n",
       "      <td>3624.26</td>\n",
       "      <td>1077.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2019-05-01 00:34:48      1       1694.47       1694.47       1694.47   \n",
       "2019-05-01 14:00:49     17      19770.18        207.54       2974.52   \n",
       "2019-05-01 18:36:49      8       8799.92         96.59       3233.26   \n",
       "2019-05-01 19:09:49      6       7399.94        307.39       3153.02   \n",
       "2019-05-01 19:10:49     13      23595.60        206.20       4664.84   \n",
       "2019-05-01 20:38:49     15      16169.25        142.47       3624.26   \n",
       "\n",
       "                     res_time_avg  \n",
       "created_at                         \n",
       "2019-05-01 00:34:48        1694.0  \n",
       "2019-05-01 14:00:49        1162.0  \n",
       "2019-05-01 18:36:49        1099.0  \n",
       "2019-05-01 19:09:49        1233.0  \n",
       "2019-05-01 19:10:49        1815.0  \n",
       "2019-05-01 20:38:49        1077.0  "
      ]
     },
     "execution_count": 132,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2 = df['2019-5-1']\n",
    "df2[df['res_time_avg'] > 1000]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEHCAYAAABMRSrcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydeXxURbb4v6eX7GFfBEGCiCwKIqKCu09FVMZtdFzeG9FxRGf099T3dERnFEX0qbjigjIjouOKAoqiIiDKIghhR9YgIGFfAyFrd9fvj3s76STd6U7SSaeb8/18Ot23blXdc2936lSdOlVHjDEoiqIoRzeOWAugKIqixB5VBoqiKIoqA0VRFEWVgaIoioIqA0VRFAVVBoqiKArgirUAtaVVq1YmKysr1mIoiqLEFYsXL95rjGldOT1ulUFWVhbZ2dmxFkNRFCWuEJEtwdLVTKQoiqKoMlAURVFUGSiKoijE8ZxBMEpLS8nNzaWoqCjWoihBSElJoUOHDrjd7liLoihKJRJKGeTm5pKZmUlWVhYiEmtxlACMMezbt4/c3Fw6d+4ca3EURalEQpmJioqKaNmypSqCRoiI0LJlSx21KUojJaGUAaCKoBGj343S0Mxev4c/v7sI3ao/PAllJlIURQnkT+MX4fEZPD6D26mdkepIuJFBovH555+zevXqsuPHHnuMGTNmxFAiRYkfdDwQOaoM6hFjDD6fr051VFYGI0aM4OKLL66raIqiKBVQZRBlNm/eTI8ePfjrX/9K3759+fe//82AAQPo27cv119/Pfn5+QAMGzaMnj170rt3bx544IGgdf30009MmTKFBx98kD59+rBx40ZuvfVWPvvsM8DakuORRx5hwIAB9OvXjyVLlnDppZfSpUsX3nzzzbJ6Ro0axemnn07v3r0ZPnx4SNmPHDnCFVdcwSmnnMLJJ5/MJ598UnadvXv3ApCdnc0FF1wAwOOPP86QIUMYOHAgWVlZTJo0ib/97W/06tWLQYMGUVpaWufnqShKw5CwcwZPfPkLq7cfimqdPds3YfjvTgqbb926dbzzzjuMGDGCa6+9lhkzZpCens6zzz7Liy++yD333MPkyZNZu3YtIsLBgweD1nPWWWdx5ZVXMnjwYK677rqgeTp27Mj8+fO5//77ufXWW5k3bx5FRUWcdNJJ3HXXXXz33Xds2LCBhQsXYozhyiuvZPbs2Zx33nlV6vr2229p3749U6dOBSAvLy/svW7cuJFZs2axevVqBgwYwMSJE3nuuee45pprmDp1KldffXXYOhRFiT06MqgHOnXqRP/+/VmwYAGrV6/m7LPPpk+fPrz77rts2bKFJk2akJKSwp///GcmTZpEWlpara915ZVXAtCrVy/OPPNMMjMzad26NSkpKRw8eJDvvvuO7777jlNPPZW+ffuydu1aNmzYELSuXr16MWPGDB566CHmzJlD06ZNw17/sssuw+1206tXL7xeL4MGDSqra/PmzbW+L0VRGpaEHRlE0oOvL9LT0wFrzuCSSy7ho48+qpJn4cKFzJw5k48//pjXXnuN77//vlbXSk5OBsDhcJR99h97PB6MMTz88MPceeedYes68cQTWbx4MV9//TUPP/wwAwcO5LHHHsPlcpXNfVReJxB4fbfbXeY+6r++oijxgY4M6pH+/fszb948cnJyACgoKGD9+vXk5+eTl5fH5Zdfzssvv8yyZctC1pGZmcnhw4drLcOll17KuHHjyuYqtm3bxu7du4Pm3b59O2lpafzXf/0XDzzwAEuWLAGsOYPFixcDMHHixFrLoiixQpcZhCdhRwaNgdatWzN+/HhuuukmiouLARg5ciSZmZlcddVVFBUVYYzhpZdeClnHjTfeyB133MHo0aPLJo5rwsCBA1mzZg0DBgwAICMjg/fff582bdpUybty5UoefPDBsl7+mDFjABg+fDi33347Tz/9NGeeeWaNZVAUpfEj8boyr1+/fqZycJs1a9bQo0ePGEmkRIJ+R0pD0uWRr/H6DOtHXkaSSw0hACKy2BjTr3K6Ph1FURIeo8vPwqJmokbCU089xaeffloh7frrr+fvf/971K+1b98+LrrooirpM2fOpGXLllG/nqIojR9VBo2Ev//97/XS8AejZcuW1U5aK0qiEK9m8FigZiJFURIe1QnhUWWgKIqiqDJQFEVRVBkoiqIoqDJo9DTGeAZTpkzhmWeeiakMiqJEF/UmqkeMMRhjcDhqr3M///xzBg8eTM+ePQErnkGsufLKK8s2yFOUeEAnkMOTuMrgm2Gwc2V06zymF1xWfY948+bNXHbZZVx44YXMnz+f++67jzfffJPi4mK6dOnCO++8Q0ZGBsOGDWPKlCm4XC4GDhzI888/X6Uu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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 通过数据发现，在2019-05-01 00:34:48，有一个访问，但响应时间过长，因此这条数据可以定义为异常值\n",
    "df['2019-5-1'][['res_time_sum','res_time_min','res_time_max','res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 变成20分钟采样一次，使图像平滑一些\n",
    "data = df['2019-5-1'].resample('20T').mean()\n",
    "data[['res_time_sum','res_time_min','res_time_max','res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 业务高峰时段  下午2-3点，晚上7-8点，响应时间都是上升的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 评估十天的数据\n",
    "df['2019-5-1':'2019-5-10'][['count']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n",
       "            ...\n",
       "            3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n",
       "           dtype='int64', name='created_at', length=865)"
      ]
     },
     "execution_count": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 从上图得出 每天的情况都差不多，接下来查看周末和平常是否一样\n",
    "df['2019-5-2'].index.weekday  # 0代表星期一，1代表星期二，以此类推"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>weekday</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "\n",
       "                     res_time_avg  weekday  \n",
       "created_at                                  \n",
       "2018-11-01 00:00:07         132.0        3  \n",
       "2018-11-01 00:01:07         149.0        3  "
      ]
     },
     "execution_count": 139,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['weekday'] = df.index.weekday   # 添加新的列，表面这天是星期几\n",
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>weekday</th>\n",
       "      <th>weekend</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "2018-11-01 00:02:07      5        845.84        136.31        225.73   \n",
       "2018-11-01 00:03:07      9       1305.52         90.12        196.61   \n",
       "2018-11-01 00:04:07      3        568.89        138.45        232.02   \n",
       "\n",
       "                     res_time_avg  weekday  weekend  \n",
       "created_at                                           \n",
       "2018-11-01 00:00:07         132.0        3    False  \n",
       "2018-11-01 00:01:07         149.0        3    False  \n",
       "2018-11-01 00:02:07         169.0        3    False  \n",
       "2018-11-01 00:03:07         145.0        3    False  \n",
       "2018-11-01 00:04:07         189.0        3    False  "
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 判断是否是周末\n",
    "df['weekend'] = df['weekday'].isin({5,6})   # isin方法可以判断值是否相等\n",
    "df.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend\n",
       "False    7.016846\n",
       "True     7.574989\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 对整个数据判断是否为周末，用于查看周末和平时的情况\n",
    "# 对weekend进行分组，对count列求平均值\n",
    "df.groupby('weekend')['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend  created_at\n",
       "False    0              3.239120\n",
       "         1              1.668388\n",
       "         2              1.162551\n",
       "         3              1.086705\n",
       "         4              1.155556\n",
       "         5              1.136364\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.000000\n",
       "         9              1.080000\n",
       "         10             1.239011\n",
       "         11             2.031690\n",
       "         12             4.195845\n",
       "         13             6.668042\n",
       "         14             8.260503\n",
       "         15             8.934448\n",
       "         16             8.466504\n",
       "         17             6.784996\n",
       "         18             6.717731\n",
       "         19             8.655913\n",
       "         20            10.536496\n",
       "         21            10.846906\n",
       "         22             9.034164\n",
       "         23             5.946834\n",
       "True     0              3.467782\n",
       "         1              1.741849\n",
       "         2              1.161826\n",
       "         3              1.050000\n",
       "         4              1.076923\n",
       "         5              1.333333\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.071429\n",
       "         9              1.144928\n",
       "         10             1.254111\n",
       "         11             1.992958\n",
       "         12             4.031889\n",
       "         13             6.905772\n",
       "         14             8.851321\n",
       "         15             9.858422\n",
       "         16             9.420550\n",
       "         17             7.334743\n",
       "         18             7.342150\n",
       "         19             9.270430\n",
       "         20            11.173609\n",
       "         21            11.695043\n",
       "         22            10.419916\n",
       "         23             7.025452\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 142,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 周末调用的平均次数多，为7.574989\n",
    "# 查看周末哪个时段调用次数多\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean()  # 对weekend和index同时进行分组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 周末和非周末，具体时间对比，绘制成图像，更加直观\n",
    "df.groupby(['weekend',df.index.hour])[['count']].mean().plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>weekend</th>\n",
       "      <th>False</th>\n",
       "      <th>True</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>3.239120</td>\n",
       "      <td>3.467782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1.668388</td>\n",
       "      <td>1.741849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1.162551</td>\n",
       "      <td>1.161826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1.086705</td>\n",
       "      <td>1.050000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>1.155556</td>\n",
       "      <td>1.076923</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>1.136364</td>\n",
       "      <td>1.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.071429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>1.080000</td>\n",
       "      <td>1.144928</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>10</td>\n",
       "      <td>1.239011</td>\n",
       "      <td>1.254111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>11</td>\n",
       "      <td>2.031690</td>\n",
       "      <td>1.992958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>12</td>\n",
       "      <td>4.195845</td>\n",
       "      <td>4.031889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>13</td>\n",
       "      <td>6.668042</td>\n",
       "      <td>6.905772</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>14</td>\n",
       "      <td>8.260503</td>\n",
       "      <td>8.851321</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>15</td>\n",
       "      <td>8.934448</td>\n",
       "      <td>9.858422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>16</td>\n",
       "      <td>8.466504</td>\n",
       "      <td>9.420550</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>17</td>\n",
       "      <td>6.784996</td>\n",
       "      <td>7.334743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>18</td>\n",
       "      <td>6.717731</td>\n",
       "      <td>7.342150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>19</td>\n",
       "      <td>8.655913</td>\n",
       "      <td>9.270430</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>20</td>\n",
       "      <td>10.536496</td>\n",
       "      <td>11.173609</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>21</td>\n",
       "      <td>10.846906</td>\n",
       "      <td>11.695043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>22</td>\n",
       "      <td>9.034164</td>\n",
       "      <td>10.419916</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>23</td>\n",
       "      <td>5.946834</td>\n",
       "      <td>7.025452</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                count           \n",
       "weekend         False      True \n",
       "created_at                      \n",
       "0            3.239120   3.467782\n",
       "1            1.668388   1.741849\n",
       "2            1.162551   1.161826\n",
       "3            1.086705   1.050000\n",
       "4            1.155556   1.076923\n",
       "5            1.136364   1.333333\n",
       "6            1.000000   1.000000\n",
       "7            1.000000   1.000000\n",
       "8            1.000000   1.071429\n",
       "9            1.080000   1.144928\n",
       "10           1.239011   1.254111\n",
       "11           2.031690   1.992958\n",
       "12           4.195845   4.031889\n",
       "13           6.668042   6.905772\n",
       "14           8.260503   8.851321\n",
       "15           8.934448   9.858422\n",
       "16           8.466504   9.420550\n",
       "17           6.784996   7.334743\n",
       "18           6.717731   7.342150\n",
       "19           8.655913   9.270430\n",
       "20          10.536496  11.173609\n",
       "21          10.846906  11.695043\n",
       "22           9.034164  10.419916\n",
       "23           5.946834   7.025452"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 周末和非周末数据叠加\n",
    "df.groupby(['weekend',df.index.hour])[['count']].mean().unstack(level = 0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.groupby(['weekend',df.index.hour])[['count']].mean().unstack(level = 0).plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
